<!DOCTYPE html>
<html lang="en">
<head>
    <title>囧么肥事</title>
    <meta charset="UTF-8"/>
    <meta name="viewport"
          content="width=device-width,height=device-height,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Type" content="text/html;"/>
    <meta name="renderer" content="webkit">
    <!--解决页面加载网络图片的403问题 , 可以让img标签预加载网络图片-->
    <meta name="referrer" content="no-referrer" />

    <!--markdown S -->
    <link rel="stylesheet" type="text/css" href="../../static/css/export_setting_css.css"/>
    <link rel="stylesheet" type="text/css" href="../../static/css/markdown_preview_css.css"/>
    <!--markdown E -->

    <!--left bar tools css E-->
    <link rel="stylesheet" type="text/css" href="../../static/css/nav.css">
    <link rel="stylesheet" type="text/css" href="http://www.jq22.com/jquery/font-awesome.4.6.0.css">
    <!--left bar tools css E-->

    <!-- 滚动条 S -->
    <link rel="stylesheet" href="../../static/css/optiscroll.css">
    <!-- 滚动条 E -->
</head>
<body>
<div id="m-wrapper" class="m-wrapper optiscroll">
    <!-- top 锚点 -->
    <a id="top"></a>

    <!-- left bar tools S -->
    <div class="leftNav-item">
        <ul>
            <li>
                <i class="fa fa-location-arrow"></i>
                <a href="http://jiongmefeishi.gitee.io/monster-blog/" target="_blank" class="rota">个人网站</a>
            </li>

            <li title="Git">
                <i class="fa fa-code-fork" aria-hidden="true"></i>
                <a href="http://jiongmefeishi.gitee.io/monster-blog/" target="_blank" class="rota">Git Page</a>
            </li>

            <li lay-data="img" data-fooc="http://resource.zqtaotao.cn/wx/qrcode/jiongmefeishi.jpg">
                <i class="fa fa-comments-o"></i><a href="javascript:;" class="rota">公众号</a>
            </li>

            <li lay-data="img" data-fooc="http://resource.zqtaotao.cn/weixincode.png">
                <i class="fa fa-money"></i><a href="javascript:;" class="rota">小额打赏</a>
            </li>
            <li title="返回顶部" class="for-top">
                <i class="fa fa-arrow-up"></i>
                <a href="#top" class="rota">去顶部</a>
            </li>
        </ul>
    </div>
    <!-- left bar tools E -->

    <!--content S-->
    <div id="export_content"><div class="output_wrapper" id="output_wrapper_id"><h3 id="hk8sdeployments"><span>跟k8s工作负载Deployments的缘起缘灭</span></h3>
        <pre><code class="hljs">考点之简单介绍一下什么是Deployments吧？<br></code></pre>
        <pre><code class="hljs">考点之怎么查看&nbsp;Deployment&nbsp;上线状态？<br></code></pre>
        <pre><code class="hljs">考点之集群中能不能设置多个Deployments控制器具有重叠的标签选择器？<br></code></pre>
        <pre><code class="hljs cpp">考点之可以自定义Pod-<span class="hljs-keyword">template</span>-hash&nbsp;标签嘛？如果可以，有什么好处？如果不可以，有什么危害？<br></code></pre>
        <pre><code class="hljs">考点之什么场景下会触发Deployments上线动作？<br></code></pre>
        <pre><code class="hljs">考点之Deployments在更新时会关闭所有Pod嘛？如果不是，默认关闭最大比例是多少？<br></code></pre>
        <pre><code class="hljs">考点之你能不能简单描述一下Deployments更新时RS和Pod是如何滚动更新的？<br></code></pre>
        <pre><code class="hljs">考点之如何判定Deployment上线过程是否出现停滞？有哪些原因会造成停滞？如何解决配额不足的问题？<br></code></pre>
        <pre><code class="hljs cs">考点之保存修订历史会消耗&nbsp;etcd&nbsp;中的资源，并占用&nbsp;`kubectl&nbsp;<span class="hljs-keyword">get</span>&nbsp;rs`&nbsp;的输出，如果给修订历史限制值设置为<span class="hljs-number">0</span>是不是就能有效解决这个问题？<br></code></pre>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/cfdf2eea8a08a679ec0aa6805ef5299a.gif" alt="" title=""><figcaption></figcaption></figure>
        <h3 id="h"><span>囧么肥事-胡说八道</span></h3>
        <figure><img src="https://img-blog.csdnimg.cn/b8c36781b3044850b2b936a58f5a69b2.png" alt="" title=""><figcaption></figcaption></figure>
        <figure><img src="https://img-blog.csdnimg.cn/8c3db9f4ab7f434fb0b2a9ca4c299bd4.png" alt="" title=""><figcaption></figcaption></figure>
        <h3 id="hdeployments"><span>考点之简单介绍一下什么是Deployments吧？</span></h3>
        <p><code>Deployments</code>是k8s内置的工作负载之一，主要作用是帮助我们管理<strong>无状态Pod</strong>。</p>
        <p>一个 <code>Deployment</code> 为 Pods 和 <code>ReplicaSets</code> 提供了声明式的更新能力，我们只需要负责描述 <code>Deployment</code> 中的RS和Pod需要达到的目标状态，那么DM就会以一种受控速率去帮助我们更改RS和Pod的实际状态， 使其变为我们期望出现的状态。</p>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/9c4c68b5f29fdecdcfbc0d9c36bfb419.png" alt="" title=""><figcaption></figcaption></figure>
        <p><code>Deployment</code> 很适合用来管理你的集群上的<strong>无状态应用</strong>，<code>Deployment</code> 认为所有的 <code>Pod</code> 都是相互等价的，在需要的时候都是可以替换的。</p>
        <pre><code class="hljs apache"><span class="hljs-attribute">Deployment</span>:&nbsp;<span class="hljs-string">"小Pod&nbsp;们，都给我听话"</span><br><span class="hljs-attribute">DM</span>:&nbsp;<span class="hljs-string">"你们都不是唯一的"</span><br><span class="hljs-attribute">DM</span>:&nbsp;<span class="hljs-string">"不听话，闹事的Pod"</span><br><span class="hljs-attribute">DM</span>:&nbsp;<span class="hljs-string">"随时可以让你走人"</span><br><span class="hljs-attribute">DM</span>:&nbsp;<span class="hljs-string">"大把的Pod可以替换你们"</span><br><br><span class="hljs-attribute">Pods</span>:&nbsp;<span class="hljs-string">"是是是，我们一定听话"</span><br></code></pre>
        <p>Deployment 是一个实干主义者，你如果好好工作，不闹事，那么一切OK，但是如果你有小心思，敢闹事，那它随时可以赶你走人，随时随地可以招新人。</p>
        <h3 id="hdeployment"><span>考点之怎么查看 Deployment 上线状态？</span></h3>
        <p>Deployment 的生命周期中会有许多状态。上线新的 ReplicaSet 期间可能处于<code>Progressing</code>（进行中），可能是 <code>Complete</code>（已完成），也可能是<code>Failed</code>（失败）进入阻塞停滞无法继续进行。</p>
        <p>利用<code>kubectl rollout status</code> 命令可以监视 <code>Deployment</code> 的进度。</p>
        <p>假设创建了一个Nginx的DM，查看DM进度。</p>
        <pre><code class="hljs nginx"><span class="hljs-attribute">kubectl</span>&nbsp;rollout&nbsp;status&nbsp;deployment/nginx-deployment<br></code></pre>
        <p><strong>哪些场景会让Deployment 进入这三种状态呢？</strong></p>
        <blockquote>
            <p>为了方便，后续DM均代表Deployment </p>
        </blockquote>
        <h4 id="hprogressing"><span>进行中（Progressing）</span></h4>
        <p>当<code>Deployment</code> 执行下面的任务期间，<code>Kubernetes</code> 将其标记为<strong>进行中（Progressing）</strong>：</p>
        <pre><code class="hljs markdown"><span class="hljs-bullet">-&nbsp;</span>DM创建新的&nbsp;<span class="hljs-code">`ReplicaSet`</span><br><span class="hljs-bullet">-&nbsp;</span>DM正在为最新的&nbsp;<span class="hljs-code">`ReplicaSet`</span>&nbsp;执行扩容操作<br><span class="hljs-bullet">-&nbsp;</span>DM&nbsp;正在为旧的&nbsp;<span class="hljs-code">`ReplicaSet`</span>执行缩容操作<br><span class="hljs-bullet">-&nbsp;</span>新的&nbsp;Pods&nbsp;已经就绪或者可用（就绪至少持续了&nbsp;<span class="hljs-code">`MinReadySeconds`</span>&nbsp;秒）<br></code></pre>
        <h4 id="hcomplete"><span>完成（Complete）</span></h4>
        <p>当 <code>Deployment</code> 具有以下特征时，<code>Kubernetes</code> 将其标记为 <strong>完成（Complete）</strong>：</p>
        <pre><code class="hljs diff"><span class="hljs-deletion">-&nbsp;与&nbsp;DM&nbsp;关联的所有副本都已更新到指定的最新版本，这意味着之前请求的所有更新都已完成。</span><br><span class="hljs-deletion">-&nbsp;与&nbsp;DM&nbsp;关联的所有副本都可用。</span><br><span class="hljs-deletion">-&nbsp;未运行&nbsp;DM&nbsp;的旧副本。</span><br></code></pre>
        <h4 id="hfailed"><span>失败的（Failed）</span></h4>
        <p>当<code>Deployment</code> 在尝试部署其最新的 <code>ReplicaSet</code> 受挫时，会一直处于未完成状态。 造成此情况可能因素如下：</p>
        <pre><code class="hljs diff"><span class="hljs-deletion">-&nbsp;配额（Quota）不足</span><br><span class="hljs-deletion">-&nbsp;就绪探测（Readiness&nbsp;Probe）失败</span><br><span class="hljs-deletion">-&nbsp;镜像拉取错误</span><br><span class="hljs-deletion">-&nbsp;权限不足</span><br><span class="hljs-deletion">-&nbsp;限制范围（Limit&nbsp;Ranges）问题</span><br><span class="hljs-deletion">-&nbsp;应用程序运行时的配置错误</span><br></code></pre>
        <h3 id="hdeployments-1"><span>考点之集群中能不能设置多个Deployments控制器具有重叠的标签选择器？</span></h3>
        <p>首先答案肯定是不能的。</p>
        <p>如果这样做，后果是什么呢？<strong>如果有多个控制器的标签选择器发生重叠，则控制器之间会因冲突而无法正常工作。</strong></p>
        <p>另一篇已经讨论类似问题：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484188&amp;idx=1&amp;sn=b8b06c4abe2f5d56556235f867ec10d0&amp;chksm=cf31eacaf84663dc0dd330e4b5d183c06a2c92f8a0e42c8c76b30d67e1ba90381f5bc7c5f780#rd">线上预警k8s集群循环创建、删除Pod副本，一直无法稳定指定目标副本数量?如果排除了是Pod内部发生了故障，从RS角度你猜测可能是什么原因？</a></p>
        <p>上一篇主要说明的是多个ReplicaSets 配置了相同的标签选择符，使用相同的标签选择器创建多个<code>ReplicaSet</code>，则多个RS无法识别哪个Pod是自己创建的，都会认为是归属于自己管理的Pod。这样做的后果就是会造成Pod被竞争接管的情况，导致Pod副本数量一直无法稳定。</p>
        <p>我们知道 <code>Deployment</code> 为 <code>Pods</code> 和 <code>ReplicaSets</code> 提供了声明式的更新能力，主要管控的是RS和Pods。</p>
        <p>Kubernetes 不会阻止你去给设置重叠的标签选择器，但是既然RS和Pods会出现因为竞争克制引发的<strong>管理冲突</strong>情况，那么身为他们俩的管理者DM肯定是不能独善其身，一定会受到影响的。</p>
        <blockquote>
            <p>那么为了不出现<strong>管理冲突</strong>，我们应该怎么做呢？</p>
        </blockquote>
        <p>必须在 Deployment 中指定适当的标签选择器和 Pod 模板标签，同时标签或者标签选择器不要与其他控制器（包括其他 <code>Deployment</code> 和 <code>StatefulSet</code>）重叠。</p>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/034d130cae629b4e869684bc377c9aea.gif" alt="" title=""><figcaption></figcaption></figure>
        <h3 id="hpodtemplatehash"><span>考点之可以自定义Pod-template-hash 标签嘛？如果可以，有什么好处？如果不可以，有什么危害？</span></h3>
        <blockquote>
            <p>k8s官方说明： 不要更改此标签</p>
        </blockquote>
        <p>k8s官方直接明确的告诉我们，不要自定义<code>Pod-template-hash</code> 标签，<strong>那么为什么呢？凭什么就不能自定义？</strong></p>
        <p><code>Deployment</code> 控制器会将自己创建或者管理的每一个<code>ReplicaSet</code> 身上都<strong>标注Pod-template-hash</strong> 标签。</p>
        <p>唯一的目的就是利用这个标签<strong>确保 Deployment 的子 ReplicaSets 不重叠</strong>。</p>
        <p>注意<code>Deployment</code>中 <code>ReplicaSet</code> 的名称始终<strong>被格式化</strong>为<code>[Deployment名称]-[随机字符串]</code>。</p>
        <p>其中随机字符串是使用 <strong>pod-template-hash</strong> 作为种子随机生成的。</p>
        <p>通过对 ReplicaSet 的 <code>PodTemplate</code> 进行哈希处理，所生成的哈希值被添加到 <strong>ReplicaSet</strong> 的标签选择器、Pod 模板标签，以及RS中的每个Pod身上。</p>
        <p><strong>疑问来了，自定义有什么危害呢？</strong></p>
        <p>上面说了，这个标签主要是作为名称随机，确保不重叠，随机到每一个Pod和RS上，可以避免出现多个<code>Deployments</code>控制器具有重叠的标签选择器。也就是上面说的那个竞争排斥问题。</p>
        <h3 id="hdeployments-2"><span>考点之什么场景下会触发Deployments上线动作？</span></h3>
        <p>仅当 Deployment Pod 模板（即 <code>.spec.template</code>）发生改变时，例如<strong>模板的标签或容器镜像被更新</strong>， 才会触发 Deployment 上线。</p>
        <p>其他更新（如对 Deployment 执行扩缩容的操作）不会触发上线动作。</p>
        <h3 id="hdeploymentspod"><span>考点之Deployments在更新时会关闭所有Pod嘛？如果不是，默认关闭最大比例是多少？</span></h3>
        <p>Deployment 可确保在更新时仅关闭一定数量的 Pod。</p>
        <p>默认情况下，它确保至少所需 Pods 75% 处于运行状态（<code>maxUnavailable</code>最大不可用比例为 25%）。</p>
        <pre><code class="hljs">如果有100个Pod，在更新时，最多关闭25个Pod<br><br>DM&nbsp;保证至少会有75个Pod能正常提供服务<br></code></pre>
        <p>Deployment 还确保所创建 Pod 数量只可能比期望 Pods 数高一点点。 </p>
        <p>默认情况下，它可确保启动的 Pod 个数比期望个数<strong>最多多出 25%</strong>（最大峰值 25%）。</p>
        <pre><code class="hljs nginx"><span class="hljs-attribute">DM</span>&nbsp;更新会出现两种操作<br><span class="hljs-number">1</span>、销毁老版本Pod<br><span class="hljs-number">2</span>、创建新版本Pod<br><br>无论是销毁还是创建<br>默认峰值都是<span class="hljs-number">25</span>%<br><br>销毁时，最多同时销毁<span class="hljs-number">25</span>%Pod<br>保证有<span class="hljs-number">75</span>%的Pod可以继续提供服务<br><br>创建时，最多运行比预期副本数多出<span class="hljs-number">25</span>%<br><br>也就是说如果预期存活Pod副本是<span class="hljs-number">100</span>个<br>那么最多允许同时在运行<span class="hljs-number">125</span>个旧版副本+新版副本<br></code></pre>
        <h3 id="hdeploymentsrspod"><span>考点之你能不能简单描述一下Deployments更新时RS和Pod是如何滚动更新的？</span></h3>
        <p>如果不去更改默认的最大不可用比例和最大运行峰值比例，那么DM更新时，会创建新版本RS，并将其进行扩容，控制到Pod副本数量<strong>满足最大运行峰值比例</strong>。</p>
        <p><strong>达到比例后，DM会停止新版RS扩容，不会再创建新版Pod，直到DM杀死足够多的旧版Pod</strong></p>
        <p>接下来对旧版本RS进行缩容操作，控制去除Pod副本数量<strong>满足最大不可用比例</strong>。</p>
        <p><strong>同样，达到比例后，DM会停止旧版RS删除，不会再继续删除旧版Pod，直到DM创建到足够多的新版Pod</strong></p>
        <p>此为一轮更新，DM不断的进行滚动更新上述操作，直到旧版RS，旧版Pod副本数为0，新版副本数稳定，停止滚动更新。</p>
        <h3 id="hdeployment-1"><span>考点之如何判定Deployment上线过程是否出现停滞？有哪些原因会造成停滞？如何解决配额不足的问题？</span></h3>
        <p><code>Deployment</code> 可能会在尝试部署最新的 <code>ReplicaSet</code> 时出现故障，一直处于未完成的停滞状态。</p>
        <p>造成此情况<strong>一些可能因素</strong>如下：</p>
        <pre><code class="hljs diff"><span class="hljs-deletion">-&nbsp;配额（Quota）不足</span><br><span class="hljs-deletion">-&nbsp;就绪探测（Readiness&nbsp;Probe）失败</span><br><span class="hljs-deletion">-&nbsp;镜像拉取错误</span><br><span class="hljs-deletion">-&nbsp;权限不足</span><br><span class="hljs-deletion">-&nbsp;限制范围（Limit&nbsp;Ranges）问题</span><br><span class="hljs-deletion">-&nbsp;应用程序运行时的配置错误</span><br></code></pre>
        <p><strong>如何判定Deployment上线过程是否出现停滞？</strong></p>
        <p>检测此状况的一种方法是在 <code>Deployment</code> 规约中<strong>指定截止时间</strong>参数<code>.spec.progressDeadlineSeconds</code>。</p>
        <p>一旦超过 Deployment 进度限期，<code>Kubernetes</code> 将更新DM状态和进度状况的原因：</p>
        <pre><code class="hljs php">Conditions:<br>&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status&nbsp;&nbsp;Reason<br>&nbsp;&nbsp;----&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------&nbsp;&nbsp;------<br>&nbsp;&nbsp;Available&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword">True</span>&nbsp;&nbsp;&nbsp;&nbsp;MinimumReplicasAvailable<br>&nbsp;&nbsp;Progressing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword">False</span>&nbsp;&nbsp;&nbsp;ProgressDeadlineExceeded<br>&nbsp;&nbsp;ReplicaFailure&nbsp;&nbsp;<span class="hljs-keyword">True</span>&nbsp;&nbsp;&nbsp;&nbsp;FailedCreate<br></code></pre>
        <p>通过 <code>Deployment</code> 状态，就能知道是否出现停滞。你可以使用 <code>kubectl rollout status</code> 检查 Deployment 是否未能取得进展。 如果 <code>Deployment</code> 已超过进度限期，<code>kubectl rollout status</code> 返回非零退出代码。</p>
        <p>判断停滞，这时候我们可以在<strong>上线过程中间安全地暂停 Deployment ，对其进行上线修复</strong>。</p>
        <p>假设排查出停滞原因是配额不足，直接在命名空间中增<strong>加配额 来解决配额不足</strong>的问题。</p>
        <p>配额条件满足，Deployment 控制器完成了 <code>Deployment</code> 上线操作， Deployment 状态会更新为成功状况（<code>Status=True</code> and <code>Reason=NewReplicaSetAvailable</code>）</p>
        <h3 id="hetcdkubectlgetrs0"><span>考点之保存修订历史会消耗 etcd 中的资源，并占用 `kubectl get rs` 的输出，如果给修订历史限制值设置为0是不是就能有效解决这个问题？</span></h3>
        <p><code>.spec.revisionHistoryLimit</code> 是一个可选字段，用来设定为回滚操作所备份保留的旧 <code>ReplicaSet</code> 数量。</p>
        <p>这些旧 <code>ReplicaSet</code> 会消耗 etcd 中的资源，并占用 <code>kubectl get rs</code> 的输出。 </p>
        <p>每个 <code>Deployment</code> 修订版本的配置都存储在其 <code>ReplicaSets</code> 中；</p>
        <p>因此，一旦删除了旧的 <code>ReplicaSet</code>， <strong>将失去回滚到 <code>Deployment</code> 的对应修订版本的能力</strong>。 </p>
        <p>默认情况下，系统保留 10 个旧 <code>ReplicaSet</code>，但其理想值取决于新 <code>Deployment</code> 的频率和稳定性。</p>
        <p>如果给修订历史限制值设置为0，将导致 <code>Deployment</code> 的所有历史记录被清空。没有了历史备份，因此 <code>Deployment</code> 将无法回滚，无法撤消新的 Deployment 上线。</p>
        <p>总结：虽然可以减少<code>etcd</code>的资源消耗，但是<strong>不利于k8s集群实现故障容错、高可用</strong>。为了节约一些资源，而放弃容错，高可用性质，只能说，非常非常非常，不值得。</p>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/e8fbfc8088f64a0a7c6dcce068eaf439.gif" alt="" title=""><figcaption></figcaption></figure>
        <blockquote>
            <p>获取更多干货（MySQL、K8S），欢迎关注微信公众号：囧么肥事</p>
        </blockquote>
        <p>Kubernetes 推荐学习书</p>
        <blockquote>
            <p>Kubernetes权威指南PDF<br>链接: https://pan.baidu.com/s/11huLHJkCeIPZqSyLEoUEmQ 提取码:sa88</p>
        </blockquote>
        <hr>
        <p><strong>《Kubernetes-企业级容器应用托管》-持续胡说八道</strong></p>
        <p>第一段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484066&amp;idx=1&amp;sn=441fcae466eb5b5fba2fa29f007d7c07&amp;chksm=cf31eb74f8466262ccc258fe1d21fbd8d65e73221c211b704d216d5116a15ffcc4f4cacf5b31#rd">【云原生新时代弄潮儿k8s凭什么在容器化方面独树一帜？】</a></p>
        <p>第二段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484077&amp;idx=1&amp;sn=2ba024c0e121f7ac83e7264bdf7b4dff&amp;chksm=cf31eb7bf846626d02c59837a2f903ed848d8e0f117c80af16b364e858005c57849f0bb82e47#rd">【趁着同事玩游戏偷偷认识k8s一家子补补课】</a></p>
        <p>第三段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484110&amp;idx=1&amp;sn=cae2e84fb16b9fe5d8a7727c20009b3b&amp;chksm=cf31eb18f846620e3dd1b7b8b9008fd5960363bc6bd3de679225ea5e45f9a48e93d210ccd572#rd">【Kubernetes家族容器小管家Pod在线答疑❓】</a></p>
        <p>第四段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484122&amp;idx=1&amp;sn=4f913c1e30808622e80a386aa6b4bef8&amp;chksm=cf31eb0cf846621a4cf5ba605ec6fe4141b244dd2b8c49311accba15909f426277d643b6aceb#rd">【同事提出个我从未想过的问题，为什么Kubernetes要"多此一举"推出静态Pod概念？】</a></p>
        <p>第五段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484133&amp;idx=1&amp;sn=116c23255e688ca1b86197689bcc8b72&amp;chksm=cf31eb33f8466225400e6bfaac74d5d26de91b85e8f475ecbebedfb8ae08ebd9dde91aec1177#rd">【探针配置失误，线上容器应用异常死锁后，kubernetes集群未及时响应自愈重启容器？】</a></p>
        <p>第六段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484143&amp;idx=1&amp;sn=5e764d67105c34bbaa4c851482dbe5cc&amp;chksm=cf31eb39f846622f8c0aa21afd5d33d3928073de71058d59f974c5498bf84da2681cf76582a8#rd">【kubernetes集群之Pod说能不能让我体面的消亡呀？】</a></p>
        <p>第七段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484153&amp;idx=1&amp;sn=2d6f43036cf2e4cea5fa2aebc4b67ebf&amp;chksm=cf31eb2ff846623904c34e84943576ccf1714d73e042bdc9a4ce584050caf3fc0a85ff5c8908#rd">【k8s家族Pod辅助小能手Init容器认知答疑？】</a></p>
        <p>第八段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484188&amp;idx=1&amp;sn=b8b06c4abe2f5d56556235f867ec10d0&amp;chksm=cf31eacaf84663dc0dd330e4b5d183c06a2c92f8a0e42c8c76b30d67e1ba90381f5bc7c5f780#rd">【k8s初面考点ReplicaSet副本集极限9连击你懂了吗？】</a></p>
        <p>第九段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484206&amp;idx=1&amp;sn=631183744568cd7756cb3d747595c479&amp;chksm=cf31eaf8f84663eed04cfdd2c04dd8f1522a3c5bf43cbf4a24dd2e3a335fc4189f1269627e8f#rd">【生产环境想要对某个Pod排错、数据恢复、故障复盘有什么办法？】</a></p>
        <p>第十段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484214&amp;idx=1&amp;sn=7a0a593abbcd34347351bcc3ecd6785a&amp;chksm=cf31eae0f84663f61600e14108ebd7b0db326d26d1f78ca7686e685c4de4728af80b54de3b4c#rd">【跟k8s工作负载Deployments的缘起缘灭】</a></p>
        <p>后续未更新？推荐休闲阅读：<a href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg3NjU0NDE4NQ==&amp;action=getalbum&amp;album_id=2218140423993212933#wechat_redirect">【囧么肥事】</a></p></div></div>
    <!--content E-->
</div>



</body>
<!--left bar tools js S-->
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script type="text/javascript" src="../../static/js/nav.js"></script>
<!--left bar tools js E-->

<!-- 滚动条 S -->
<script type="text/javascript" src="../../static/js/optiscroll.js"></script>
<!-- 滚动条 E -->

<!--commonjs S-->
<script type="text/javascript" src="../../static/js/common.js"></script>
<!--commonjs E-->

</html>
